package com.jaeger.ninegridimageview;

import ohos.agp.components.Image;
import ohos.app.Context;

import java.util.List;

/**
 * 适配器
 * @param <T> 接收泛型参数
 */
public abstract class NineGridImageViewAdapter<T> {
    /**
     * 展示
     * @param context 上下文
     * @param imageView 目标imgage
     * @param t 数据类型 比如String类型的url
     */
    protected abstract void onDisplayImage(Context context, Image imageView, T t);

    /**
     * 短按回调
     * @param context 上下文
     * @param imageView 目标View
     * @param index 位置
     * @param list 数据
     */
    protected void onItemImageClick(Context context, Image imageView, int index, List<T> list) {
    }

    /**
     * 长按回调
     * @param context 上下文
     * @param imageView 目标view
     * @param index 位置
     * @param list 数据
     * @return boolean 返回是否消费 消费之后 自定义长按无效
     */
    protected boolean onItemImageLongClick(Context context, Image imageView, int index, List<T> list) {
        return false;
    }

    /**
     * 生成GridImageView
     * @param context 上下文
     * @return Image返回GridImageView
     */
    protected Image generateImageView(Context context) {
        GridImageView imageView = new GridImageView(context);
        imageView.setScaleMode(Image.ScaleMode.CLIP_CENTER);
        return imageView;
    }
}